package com.alks.function.controller.finance.borad;

import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alks.entity.data.page.PageParam;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

public class ExportPlan extends PageParam implements Serializable {

    private String brand;

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getSeason() {
        return season;
    }

    public void setSeason(String season) {
        this.season = season;
    }

    private String season;
    private String invoiceNo;
    private Double custPrice;
    private Double factoryPrice;
    private String custom;
    private Double outPair;
    @JsonFormat(
        pattern = "yyyy-MM-dd",
        timezone = "GMT+8"
    )
    @DateTimeFormat(value = "yyyy-MM-dd")
    private Date outDate;
    @JsonFormat(
        pattern = "yyyy-MM-dd",
        timezone = "GMT+8"
    )
    @DateTimeFormat(value = "yyyy-MM-dd")
    private Date shipDate;
    @JsonFormat(
        pattern = "yyyy-MM-dd",
        timezone = "GMT+8"
    )
    private Date sysDate;
    @JsonFormat(
        pattern = "yyyy-MM-dd",
        timezone = "GMT+8"
    )
    @DateTimeFormat(value = "yyyy-MM-dd")
    private Date arDate;
    private Double outAmt;
    private Double amt;
    private String currency;
    private String customsInvNo;
    private String custInvNo;
    private String destPort;
    private String exportType;
    private String remark;
    private String sysUser;
    private String companyId;
    private String arType;
    private Integer payDays;
    private Double arAmt;
    private Double premium;
    private String lotNo;
    private String factoryLotNo;
    private String cfmFlag;
    private String cfmUser;
    @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
    )
    @DateTimeFormat(value = "yyyy-MM-dd")
    private Date cfmTime;
    private String headUid;
    private String detailUid;
    private Double additionalCost;
    private String creditNo;
    @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
    )
    @DateTimeFormat(value = "yyyy-MM-dd")
    private Date deliveryDate;
    private String orderType;

    @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
    )
    @DateTimeFormat(value = "yyyy-MM-dd")
    private Date startDate;
    @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
    )
    @DateTimeFormat(value = "yyyy-MM-dd")
    private Date endDate;
    @ApiModelProperty(value = "1:正序 2：倒序")
    private String order;

    public void setOrder(String order) {
        this.order = order;
    }

    public void setOrderBy(String orderBy) {
        this.orderBy = orderBy;
    }

    @ApiModelProperty(value = "排序字段1:类型2：发票号3：出厂日期4：币种5：出货数量6：添加港口单价7：出货金额8：附加费用9：报关发票号10：客人发票号11：起运港-目的港12：出口类型13：船期14：账期15：应收款日期16：收款类型17：备注18：信用证号19：交单日期20：建档人21：建档日期")
    private String orderBy;

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public static ExportPlanBuilder builder() {
        return new ExportPlanBuilder();
    }

    public String getInvoiceNo() {
        return this.invoiceNo;
    }

    public Double getCustPrice() {
        return this.custPrice;
    }

    public Double getFactoryPrice() {
        return this.factoryPrice;
    }

    public String getCustom() {
        return this.custom;
    }

    public Double getOutPair() {
        return this.outPair;
    }

    public Date getOutDate() {
        return this.outDate;
    }

    public Date getShipDate() {
        return this.shipDate;
    }

    public Date getSysDate() {
        return this.sysDate;
    }

    public Date getArDate() {
        return this.arDate;
    }

    public Double getOutAmt() {
        return this.outAmt;
    }

    public Double getAmt() {
        return this.amt;
    }

    public String getCurrency() {
        return this.currency;
    }

    public String getCustomsInvNo() {
        return this.customsInvNo;
    }

    public String getCustInvNo() {
        return this.custInvNo;
    }

    public String getDestPort() {
        return this.destPort;
    }

    public String getExportType() {
        return this.exportType;
    }

    public String getRemark() {
        return this.remark;
    }

    public String getSysUser() {
        return this.sysUser;
    }

    public String getCompanyId() {
        return this.companyId;
    }

    public String getArType() {
        return this.arType;
    }

    public Integer getPayDays() {
        return this.payDays;
    }

    public Double getArAmt() {
        return this.arAmt;
    }

    public Double getPremium() {
        return this.premium;
    }

    public String getLotNo() {
        return this.lotNo;
    }

    public String getFactoryLotNo() {
        return this.factoryLotNo;
    }

    public String getCfmFlag() {
        return this.cfmFlag;
    }

    public String getCfmUser() {
        return this.cfmUser;
    }

    public Date getCfmTime() {
        return this.cfmTime;
    }

    public String getHeadUid() {
        return this.headUid;
    }

    public String getDetailUid() {
        return this.detailUid;
    }

    public Double getAdditionalCost() {
        return this.additionalCost;
    }

    public String getCreditNo() {
        return this.creditNo;
    }

    public Date getDeliveryDate() {
        return this.deliveryDate;
    }

    public String getOrderType() {
        return this.orderType;
    }


    public void setInvoiceNo(String invoiceNo) {
        this.invoiceNo = invoiceNo;
    }

    public void setCustPrice(Double custPrice) {
        this.custPrice = custPrice;
    }

    public void setFactoryPrice(Double factoryPrice) {
        this.factoryPrice = factoryPrice;
    }

    public void setCustom(String custom) {
        this.custom = custom;
    }

    public void setOutPair(Double outPair) {
        this.outPair = outPair;
    }

    @JsonFormat(
        pattern = "yyyy-MM-dd",
        timezone = "GMT+8"
    )
    public void setOutDate(Date outDate) {
        this.outDate = outDate;
    }

    @JsonFormat(
        pattern = "yyyy-MM-dd",
        timezone = "GMT+8"
    )
    public void setShipDate(Date shipDate) {
        this.shipDate = shipDate;
    }

    @JsonFormat(
        pattern = "yyyy-MM-dd",
        timezone = "GMT+8"
    )
    public void setSysDate(Date sysDate) {
        this.sysDate = sysDate;
    }

    @JsonFormat(
        pattern = "yyyy-MM-dd",
        timezone = "GMT+8"
    )
    public void setArDate(Date arDate) {
        this.arDate = arDate;
    }

    public void setOutAmt(Double outAmt) {
        this.outAmt = outAmt;
    }

    public void setAmt(Double amt) {
        this.amt = amt;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public void setCustomsInvNo(String customsInvNo) {
        this.customsInvNo = customsInvNo;
    }

    public void setCustInvNo(String custInvNo) {
        this.custInvNo = custInvNo;
    }

    public void setDestPort(String destPort) {
        this.destPort = destPort;
    }

    public void setExportType(String exportType) {
        this.exportType = exportType;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public void setSysUser(String sysUser) {
        this.sysUser = sysUser;
    }

    public void setCompanyId(String companyId) {
        this.companyId = companyId;
    }

    public void setArType(String arType) {
        this.arType = arType;
    }

    public void setPayDays(Integer payDays) {
        this.payDays = payDays;
    }

    public void setArAmt(Double arAmt) {
        this.arAmt = arAmt;
    }

    public void setPremium(Double premium) {
        this.premium = premium;
    }

    public void setLotNo(String lotNo) {
        this.lotNo = lotNo;
    }

    public void setFactoryLotNo(String factoryLotNo) {
        this.factoryLotNo = factoryLotNo;
    }

    public void setCfmFlag(String cfmFlag) {
        this.cfmFlag = cfmFlag;
    }

    public void setCfmUser(String cfmUser) {
        this.cfmUser = cfmUser;
    }

    public void setCfmTime(Date cfmTime) {
        this.cfmTime = cfmTime;
    }

    public void setHeadUid(String headUid) {
        this.headUid = headUid;
    }

    public void setDetailUid(String detailUid) {
        this.detailUid = detailUid;
    }

    public void setAdditionalCost(Double additionalCost) {
        this.additionalCost = additionalCost;
    }

    public void setCreditNo(String creditNo) {
        this.creditNo = creditNo;
    }

    public void setDeliveryDate(Date deliveryDate) {
        this.deliveryDate = deliveryDate;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }



    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof ExportPlan)) {
            return false;
        } else {
            ExportPlan other = (ExportPlan)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label431: {
                    Object this$custPrice = this.getCustPrice();
                    Object other$custPrice = other.getCustPrice();
                    if (this$custPrice == null) {
                        if (other$custPrice == null) {
                            break label431;
                        }
                    } else if (this$custPrice.equals(other$custPrice)) {
                        break label431;
                    }

                    return false;
                }

                Object this$factoryPrice = this.getFactoryPrice();
                Object other$factoryPrice = other.getFactoryPrice();
                if (this$factoryPrice == null) {
                    if (other$factoryPrice != null) {
                        return false;
                    }
                } else if (!this$factoryPrice.equals(other$factoryPrice)) {
                    return false;
                }

                Object this$outPair = this.getOutPair();
                Object other$outPair = other.getOutPair();
                if (this$outPair == null) {
                    if (other$outPair != null) {
                        return false;
                    }
                } else if (!this$outPair.equals(other$outPair)) {
                    return false;
                }

                label410: {
                    Object this$outAmt = this.getOutAmt();
                    Object other$outAmt = other.getOutAmt();
                    if (this$outAmt == null) {
                        if (other$outAmt == null) {
                            break label410;
                        }
                    } else if (this$outAmt.equals(other$outAmt)) {
                        break label410;
                    }

                    return false;
                }

                label403: {
                    Object this$amt = this.getAmt();
                    Object other$amt = other.getAmt();
                    if (this$amt == null) {
                        if (other$amt == null) {
                            break label403;
                        }
                    } else if (this$amt.equals(other$amt)) {
                        break label403;
                    }

                    return false;
                }

                Object this$payDays = this.getPayDays();
                Object other$payDays = other.getPayDays();
                if (this$payDays == null) {
                    if (other$payDays != null) {
                        return false;
                    }
                } else if (!this$payDays.equals(other$payDays)) {
                    return false;
                }

                Object this$arAmt = this.getArAmt();
                Object other$arAmt = other.getArAmt();
                if (this$arAmt == null) {
                    if (other$arAmt != null) {
                        return false;
                    }
                } else if (!this$arAmt.equals(other$arAmt)) {
                    return false;
                }

                label382: {
                    Object this$premium = this.getPremium();
                    Object other$premium = other.getPremium();
                    if (this$premium == null) {
                        if (other$premium == null) {
                            break label382;
                        }
                    } else if (this$premium.equals(other$premium)) {
                        break label382;
                    }

                    return false;
                }

                label375: {
                    Object this$additionalCost = this.getAdditionalCost();
                    Object other$additionalCost = other.getAdditionalCost();
                    if (this$additionalCost == null) {
                        if (other$additionalCost == null) {
                            break label375;
                        }
                    } else if (this$additionalCost.equals(other$additionalCost)) {
                        break label375;
                    }

                    return false;
                }

                Object this$invoiceNo = this.getInvoiceNo();
                Object other$invoiceNo = other.getInvoiceNo();
                if (this$invoiceNo == null) {
                    if (other$invoiceNo != null) {
                        return false;
                    }
                } else if (!this$invoiceNo.equals(other$invoiceNo)) {
                    return false;
                }

                label361: {
                    Object this$custom = this.getCustom();
                    Object other$custom = other.getCustom();
                    if (this$custom == null) {
                        if (other$custom == null) {
                            break label361;
                        }
                    } else if (this$custom.equals(other$custom)) {
                        break label361;
                    }

                    return false;
                }

                Object this$outDate = this.getOutDate();
                Object other$outDate = other.getOutDate();
                if (this$outDate == null) {
                    if (other$outDate != null) {
                        return false;
                    }
                } else if (!this$outDate.equals(other$outDate)) {
                    return false;
                }

                label347: {
                    Object this$shipDate = this.getShipDate();
                    Object other$shipDate = other.getShipDate();
                    if (this$shipDate == null) {
                        if (other$shipDate == null) {
                            break label347;
                        }
                    } else if (this$shipDate.equals(other$shipDate)) {
                        break label347;
                    }

                    return false;
                }

                Object this$sysDate = this.getSysDate();
                Object other$sysDate = other.getSysDate();
                if (this$sysDate == null) {
                    if (other$sysDate != null) {
                        return false;
                    }
                } else if (!this$sysDate.equals(other$sysDate)) {
                    return false;
                }

                Object this$arDate = this.getArDate();
                Object other$arDate = other.getArDate();
                if (this$arDate == null) {
                    if (other$arDate != null) {
                        return false;
                    }
                } else if (!this$arDate.equals(other$arDate)) {
                    return false;
                }

                label326: {
                    Object this$currency = this.getCurrency();
                    Object other$currency = other.getCurrency();
                    if (this$currency == null) {
                        if (other$currency == null) {
                            break label326;
                        }
                    } else if (this$currency.equals(other$currency)) {
                        break label326;
                    }

                    return false;
                }

                label319: {
                    Object this$customsInvNo = this.getCustomsInvNo();
                    Object other$customsInvNo = other.getCustomsInvNo();
                    if (this$customsInvNo == null) {
                        if (other$customsInvNo == null) {
                            break label319;
                        }
                    } else if (this$customsInvNo.equals(other$customsInvNo)) {
                        break label319;
                    }

                    return false;
                }

                Object this$custInvNo = this.getCustInvNo();
                Object other$custInvNo = other.getCustInvNo();
                if (this$custInvNo == null) {
                    if (other$custInvNo != null) {
                        return false;
                    }
                } else if (!this$custInvNo.equals(other$custInvNo)) {
                    return false;
                }

                Object this$destPort = this.getDestPort();
                Object other$destPort = other.getDestPort();
                if (this$destPort == null) {
                    if (other$destPort != null) {
                        return false;
                    }
                } else if (!this$destPort.equals(other$destPort)) {
                    return false;
                }

                label298: {
                    Object this$exportType = this.getExportType();
                    Object other$exportType = other.getExportType();
                    if (this$exportType == null) {
                        if (other$exportType == null) {
                            break label298;
                        }
                    } else if (this$exportType.equals(other$exportType)) {
                        break label298;
                    }

                    return false;
                }

                label291: {
                    Object this$remark = this.getRemark();
                    Object other$remark = other.getRemark();
                    if (this$remark == null) {
                        if (other$remark == null) {
                            break label291;
                        }
                    } else if (this$remark.equals(other$remark)) {
                        break label291;
                    }

                    return false;
                }

                Object this$sysUser = this.getSysUser();
                Object other$sysUser = other.getSysUser();
                if (this$sysUser == null) {
                    if (other$sysUser != null) {
                        return false;
                    }
                } else if (!this$sysUser.equals(other$sysUser)) {
                    return false;
                }

                Object this$companyId = this.getCompanyId();
                Object other$companyId = other.getCompanyId();
                if (this$companyId == null) {
                    if (other$companyId != null) {
                        return false;
                    }
                } else if (!this$companyId.equals(other$companyId)) {
                    return false;
                }

                label270: {
                    Object this$arType = this.getArType();
                    Object other$arType = other.getArType();
                    if (this$arType == null) {
                        if (other$arType == null) {
                            break label270;
                        }
                    } else if (this$arType.equals(other$arType)) {
                        break label270;
                    }

                    return false;
                }

                label263: {
                    Object this$lotNo = this.getLotNo();
                    Object other$lotNo = other.getLotNo();
                    if (this$lotNo == null) {
                        if (other$lotNo == null) {
                            break label263;
                        }
                    } else if (this$lotNo.equals(other$lotNo)) {
                        break label263;
                    }

                    return false;
                }

                Object this$factoryLotNo = this.getFactoryLotNo();
                Object other$factoryLotNo = other.getFactoryLotNo();
                if (this$factoryLotNo == null) {
                    if (other$factoryLotNo != null) {
                        return false;
                    }
                } else if (!this$factoryLotNo.equals(other$factoryLotNo)) {
                    return false;
                }

                label249: {
                    Object this$cfmFlag = this.getCfmFlag();
                    Object other$cfmFlag = other.getCfmFlag();
                    if (this$cfmFlag == null) {
                        if (other$cfmFlag == null) {
                            break label249;
                        }
                    } else if (this$cfmFlag.equals(other$cfmFlag)) {
                        break label249;
                    }

                    return false;
                }

                Object this$cfmUser = this.getCfmUser();
                Object other$cfmUser = other.getCfmUser();
                if (this$cfmUser == null) {
                    if (other$cfmUser != null) {
                        return false;
                    }
                } else if (!this$cfmUser.equals(other$cfmUser)) {
                    return false;
                }

                label235: {
                    Object this$cfmTime = this.getCfmTime();
                    Object other$cfmTime = other.getCfmTime();
                    if (this$cfmTime == null) {
                        if (other$cfmTime == null) {
                            break label235;
                        }
                    } else if (this$cfmTime.equals(other$cfmTime)) {
                        break label235;
                    }

                    return false;
                }

                Object this$headUid = this.getHeadUid();
                Object other$headUid = other.getHeadUid();
                if (this$headUid == null) {
                    if (other$headUid != null) {
                        return false;
                    }
                } else if (!this$headUid.equals(other$headUid)) {
                    return false;
                }

                Object this$detailUid = this.getDetailUid();
                Object other$detailUid = other.getDetailUid();
                if (this$detailUid == null) {
                    if (other$detailUid != null) {
                        return false;
                    }
                } else if (!this$detailUid.equals(other$detailUid)) {
                    return false;
                }

                label214: {
                    Object this$creditNo = this.getCreditNo();
                    Object other$creditNo = other.getCreditNo();
                    if (this$creditNo == null) {
                        if (other$creditNo == null) {
                            break label214;
                        }
                    } else if (this$creditNo.equals(other$creditNo)) {
                        break label214;
                    }

                    return false;
                }

                label207: {
                    Object this$deliveryDate = this.getDeliveryDate();
                    Object other$deliveryDate = other.getDeliveryDate();
                    if (this$deliveryDate == null) {
                        if (other$deliveryDate == null) {
                            break label207;
                        }
                    } else if (this$deliveryDate.equals(other$deliveryDate)) {
                        break label207;
                    }

                    return false;
                }

                Object this$orderType = this.getOrderType();
                Object other$orderType = other.getOrderType();
                if (this$orderType == null) {
                    if (other$orderType != null) {
                        return false;
                    }
                } else if (!this$orderType.equals(other$orderType)) {
                    return false;
                }
                return true;
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof ExportPlan;
    }

    public int hashCode() {
        int result = 1;
        Object $custPrice = this.getCustPrice();
        result = result * 59 + ($custPrice == null ? 43 : $custPrice.hashCode());
        Object $factoryPrice = this.getFactoryPrice();
        result = result * 59 + ($factoryPrice == null ? 43 : $factoryPrice.hashCode());
        Object $outPair = this.getOutPair();
        result = result * 59 + ($outPair == null ? 43 : $outPair.hashCode());
        Object $outAmt = this.getOutAmt();
        result = result * 59 + ($outAmt == null ? 43 : $outAmt.hashCode());
        Object $amt = this.getAmt();
        result = result * 59 + ($amt == null ? 43 : $amt.hashCode());
        Object $payDays = this.getPayDays();
        result = result * 59 + ($payDays == null ? 43 : $payDays.hashCode());
        Object $arAmt = this.getArAmt();
        result = result * 59 + ($arAmt == null ? 43 : $arAmt.hashCode());
        Object $premium = this.getPremium();
        result = result * 59 + ($premium == null ? 43 : $premium.hashCode());
        Object $additionalCost = this.getAdditionalCost();
        result = result * 59 + ($additionalCost == null ? 43 : $additionalCost.hashCode());
        Object $invoiceNo = this.getInvoiceNo();
        result = result * 59 + ($invoiceNo == null ? 43 : $invoiceNo.hashCode());
        Object $custom = this.getCustom();
        result = result * 59 + ($custom == null ? 43 : $custom.hashCode());
        Object $outDate = this.getOutDate();
        result = result * 59 + ($outDate == null ? 43 : $outDate.hashCode());
        Object $shipDate = this.getShipDate();
        result = result * 59 + ($shipDate == null ? 43 : $shipDate.hashCode());
        Object $sysDate = this.getSysDate();
        result = result * 59 + ($sysDate == null ? 43 : $sysDate.hashCode());
        Object $arDate = this.getArDate();
        result = result * 59 + ($arDate == null ? 43 : $arDate.hashCode());
        Object $currency = this.getCurrency();
        result = result * 59 + ($currency == null ? 43 : $currency.hashCode());
        Object $customsInvNo = this.getCustomsInvNo();
        result = result * 59 + ($customsInvNo == null ? 43 : $customsInvNo.hashCode());
        Object $custInvNo = this.getCustInvNo();
        result = result * 59 + ($custInvNo == null ? 43 : $custInvNo.hashCode());
        Object $destPort = this.getDestPort();
        result = result * 59 + ($destPort == null ? 43 : $destPort.hashCode());
        Object $exportType = this.getExportType();
        result = result * 59 + ($exportType == null ? 43 : $exportType.hashCode());
        Object $remark = this.getRemark();
        result = result * 59 + ($remark == null ? 43 : $remark.hashCode());
        Object $sysUser = this.getSysUser();
        result = result * 59 + ($sysUser == null ? 43 : $sysUser.hashCode());
        Object $companyId = this.getCompanyId();
        result = result * 59 + ($companyId == null ? 43 : $companyId.hashCode());
        Object $arType = this.getArType();
        result = result * 59 + ($arType == null ? 43 : $arType.hashCode());
        Object $lotNo = this.getLotNo();
        result = result * 59 + ($lotNo == null ? 43 : $lotNo.hashCode());
        Object $factoryLotNo = this.getFactoryLotNo();
        result = result * 59 + ($factoryLotNo == null ? 43 : $factoryLotNo.hashCode());
        Object $cfmFlag = this.getCfmFlag();
        result = result * 59 + ($cfmFlag == null ? 43 : $cfmFlag.hashCode());
        Object $cfmUser = this.getCfmUser();
        result = result * 59 + ($cfmUser == null ? 43 : $cfmUser.hashCode());
        Object $cfmTime = this.getCfmTime();
        result = result * 59 + ($cfmTime == null ? 43 : $cfmTime.hashCode());
        Object $headUid = this.getHeadUid();
        result = result * 59 + ($headUid == null ? 43 : $headUid.hashCode());
        Object $detailUid = this.getDetailUid();
        result = result * 59 + ($detailUid == null ? 43 : $detailUid.hashCode());
        Object $creditNo = this.getCreditNo();
        result = result * 59 + ($creditNo == null ? 43 : $creditNo.hashCode());
        Object $deliveryDate = this.getDeliveryDate();
        result = result * 59 + ($deliveryDate == null ? 43 : $deliveryDate.hashCode());
        Object $orderType = this.getOrderType();
        result = result * 59 + ($orderType == null ? 43 : $orderType.hashCode());
        return result;
    }

    public String toString() {
        return "ExportPlan(invoiceNo=" + this.getInvoiceNo() + ", custPrice=" + this.getCustPrice() + ", factoryPrice=" + this.getFactoryPrice() + ", custom=" + this.getCustom() + ", outPair=" + this.getOutPair() + ", outDate=" + this.getOutDate() + ", shipDate=" + this.getShipDate() + ", sysDate=" + this.getSysDate() + ", arDate=" + this.getArDate() + ", outAmt=" + this.getOutAmt() + ", amt=" + this.getAmt() + ", currency=" + this.getCurrency() + ", customsInvNo=" + this.getCustomsInvNo() + ", custInvNo=" + this.getCustInvNo() + ", destPort=" + this.getDestPort() + ", exportType=" + this.getExportType() + ", remark=" + this.getRemark() + ", sysUser=" + this.getSysUser() + ", companyId=" + this.getCompanyId() + ", arType=" + this.getArType() + ", payDays=" + this.getPayDays() + ", arAmt=" + this.getArAmt() + ", premium=" + this.getPremium() + ", lotNo=" + this.getLotNo() + ", factoryLotNo=" + this.getFactoryLotNo() + ", cfmFlag=" + this.getCfmFlag() + ", cfmUser=" + this.getCfmUser() + ", cfmTime=" + this.getCfmTime() + ", headUid=" + this.getHeadUid() + ", detailUid=" + this.getDetailUid() + ", additionalCost=" + this.getAdditionalCost() + ", creditNo=" + this.getCreditNo() + ", deliveryDate=" + this.getDeliveryDate() + ", orderType=" + this.getOrderType() + ", =" +  ")";
    }

    public ExportPlan() {
    }

    public ExportPlan(String invoiceNo, Double custPrice, Double factoryPrice, String custom, Double outPair, Date outDate, Date shipDate, Date sysDate, Date arDate, Double outAmt, Double amt, String currency, String customsInvNo, String custInvNo, String destPort, String exportType, String remark, String sysUser, String companyId, String arType, Integer payDays, Double arAmt, Double premium, String lotNo, String factoryLotNo, String cfmFlag, String cfmUser, Date cfmTime, String headUid, String detailUid, Double additionalCost, String creditNo, Date deliveryDate, String orderType) {
        this.invoiceNo = invoiceNo;
        this.custPrice = custPrice;
        this.factoryPrice = factoryPrice;
        this.custom = custom;
        this.outPair = outPair;
        this.outDate = outDate;
        this.shipDate = shipDate;
        this.sysDate = sysDate;
        this.arDate = arDate;
        this.outAmt = outAmt;
        this.amt = amt;
        this.currency = currency;
        this.customsInvNo = customsInvNo;
        this.custInvNo = custInvNo;
        this.destPort = destPort;
        this.exportType = exportType;
        this.remark = remark;
        this.sysUser = sysUser;
        this.companyId = companyId;
        this.arType = arType;
        this.payDays = payDays;
        this.arAmt = arAmt;
        this.premium = premium;
        this.lotNo = lotNo;
        this.factoryLotNo = factoryLotNo;
        this.cfmFlag = cfmFlag;
        this.cfmUser = cfmUser;
        this.cfmTime = cfmTime;
        this.headUid = headUid;
        this.detailUid = detailUid;
        this.additionalCost = additionalCost;
        this.creditNo = creditNo;
        this.deliveryDate = deliveryDate;
        this.orderType = orderType;
    }

    public String getOrder() {
        return order;
    }

    public String getOrderBy() {
        return orderBy;
    }

    public static class ExportPlanBuilder {
        private String invoiceNo;
        private Double custPrice;
        private Double factoryPrice;
        private String custom;
        private Double outPair;
        private Date outDate;
        private Date shipDate;
        private Date sysDate;
        private Date arDate;
        private Double outAmt;
        private Double amt;
        private String currency;
        private String customsInvNo;
        private String custInvNo;
        private String destPort;
        private String exportType;
        private String remark;
        private String sysUser;
        private String companyId;
        private String arType;
        private Integer payDays;
        private Double arAmt;
        private Double premium;
        private String lotNo;
        private String factoryLotNo;
        private String cfmFlag;
        private String cfmUser;
        private Date cfmTime;
        private String headUid;
        private String detailUid;
        private Double additionalCost;
        private String creditNo;
        private Date deliveryDate;
        private String orderType;

        ExportPlanBuilder() {
        }

        public ExportPlanBuilder invoiceNo(String invoiceNo) {
            this.invoiceNo = invoiceNo;
            return this;
        }

        public ExportPlanBuilder custPrice(Double custPrice) {
            this.custPrice = custPrice;
            return this;
        }

        public ExportPlanBuilder factoryPrice(Double factoryPrice) {
            this.factoryPrice = factoryPrice;
            return this;
        }

        public ExportPlanBuilder custom(String custom) {
            this.custom = custom;
            return this;
        }

        public ExportPlanBuilder outPair(Double outPair) {
            this.outPair = outPair;
            return this;
        }

        @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
        )
        public ExportPlanBuilder outDate(Date outDate) {
            this.outDate = outDate;
            return this;
        }

        @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
        )
        public ExportPlanBuilder shipDate(Date shipDate) {
            this.shipDate = shipDate;
            return this;
        }

        @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
        )
        public ExportPlanBuilder sysDate(Date sysDate) {
            this.sysDate = sysDate;
            return this;
        }

        @JsonFormat(
            pattern = "yyyy-MM-dd",
            timezone = "GMT+8"
        )
        public ExportPlanBuilder arDate(Date arDate) {
            this.arDate = arDate;
            return this;
        }

        public ExportPlanBuilder outAmt(Double outAmt) {
            this.outAmt = outAmt;
            return this;
        }

        public ExportPlanBuilder amt(Double amt) {
            this.amt = amt;
            return this;
        }

        public ExportPlanBuilder currency(String currency) {
            this.currency = currency;
            return this;
        }

        public ExportPlanBuilder customsInvNo(String customsInvNo) {
            this.customsInvNo = customsInvNo;
            return this;
        }

        public ExportPlanBuilder custInvNo(String custInvNo) {
            this.custInvNo = custInvNo;
            return this;
        }

        public ExportPlanBuilder destPort(String destPort) {
            this.destPort = destPort;
            return this;
        }

        public ExportPlanBuilder exportType(String exportType) {
            this.exportType = exportType;
            return this;
        }

        public ExportPlanBuilder remark(String remark) {
            this.remark = remark;
            return this;
        }

        public ExportPlanBuilder sysUser(String sysUser) {
            this.sysUser = sysUser;
            return this;
        }

        public ExportPlanBuilder companyId(String companyId) {
            this.companyId = companyId;
            return this;
        }

        public ExportPlanBuilder arType(String arType) {
            this.arType = arType;
            return this;
        }

        public ExportPlanBuilder payDays(Integer payDays) {
            this.payDays = payDays;
            return this;
        }

        public ExportPlanBuilder arAmt(Double arAmt) {
            this.arAmt = arAmt;
            return this;
        }

        public ExportPlanBuilder premium(Double premium) {
            this.premium = premium;
            return this;
        }

        public ExportPlanBuilder lotNo(String lotNo) {
            this.lotNo = lotNo;
            return this;
        }

        public ExportPlanBuilder factoryLotNo(String factoryLotNo) {
            this.factoryLotNo = factoryLotNo;
            return this;
        }

        public ExportPlanBuilder cfmFlag(String cfmFlag) {
            this.cfmFlag = cfmFlag;
            return this;
        }

        public ExportPlanBuilder cfmUser(String cfmUser) {
            this.cfmUser = cfmUser;
            return this;
        }

        public ExportPlanBuilder cfmTime(Date cfmTime) {
            this.cfmTime = cfmTime;
            return this;
        }

        public ExportPlanBuilder headUid(String headUid) {
            this.headUid = headUid;
            return this;
        }

        public ExportPlanBuilder detailUid(String detailUid) {
            this.detailUid = detailUid;
            return this;
        }

        public ExportPlanBuilder additionalCost(Double additionalCost) {
            this.additionalCost = additionalCost;
            return this;
        }

        public ExportPlanBuilder creditNo(String creditNo) {
            this.creditNo = creditNo;
            return this;
        }

        public ExportPlanBuilder deliveryDate(Date deliveryDate) {
            this.deliveryDate = deliveryDate;
            return this;
        }

        public ExportPlanBuilder orderType(String orderType) {
            this.orderType = orderType;
            return this;
        }


        public ExportPlan build() {
            return new ExportPlan(this.invoiceNo, this.custPrice, this.factoryPrice, this.custom, this.outPair, this.outDate, this.shipDate, this.sysDate, this.arDate, this.outAmt, this.amt, this.currency, this.customsInvNo, this.custInvNo, this.destPort, this.exportType, this.remark, this.sysUser, this.companyId, this.arType, this.payDays, this.arAmt, this.premium, this.lotNo, this.factoryLotNo, this.cfmFlag, this.cfmUser, this.cfmTime, this.headUid, this.detailUid, this.additionalCost, this.creditNo, this.deliveryDate, this.orderType);
        }

        public String toString() {
            return "ExportPlan.ExportPlanBuilder(invoiceNo=" + this.invoiceNo + ", custPrice=" + this.custPrice + ", factoryPrice=" + this.factoryPrice + ", custom=" + this.custom + ", outPair=" + this.outPair + ", outDate=" + this.outDate + ", shipDate=" + this.shipDate + ", sysDate=" + this.sysDate + ", arDate=" + this.arDate + ", outAmt=" + this.outAmt + ", amt=" + this.amt + ", currency=" + this.currency + ", customsInvNo=" + this.customsInvNo + ", custInvNo=" + this.custInvNo + ", destPort=" + this.destPort + ", exportType=" + this.exportType + ", remark=" + this.remark + ", sysUser=" + this.sysUser + ", companyId=" + this.companyId + ", arType=" + this.arType + ", payDays=" + this.payDays + ", arAmt=" + this.arAmt + ", premium=" + this.premium + ", lotNo=" + this.lotNo + ", factoryLotNo=" + this.factoryLotNo + ", cfmFlag=" + this.cfmFlag + ", cfmUser=" + this.cfmUser + ", cfmTime=" + this.cfmTime + ", headUid=" + this.headUid + ", detailUid=" + this.detailUid + ", additionalCost=" + this.additionalCost + ", creditNo=" + this.creditNo + ", deliveryDate=" + this.deliveryDate + ", orderType=" + this.orderType;
        }
    }
}
